CREATE INDEX
CREATE INDEX文は、表の1つ以上の列にTツリー索引を作成して、新しい索引に名前を割り当てます。Tツリー索引は、インメモリー・アプリケーション向けに設計された索引構造です。Tツリーには、次の特徴があります。
アクセス制御
TimesTenインスタンスでアクセス制御が有効な場合、この文にはDDL権限が必要です。
SQL構文
CREATE [UNIQUE] INDEX [Owner.]IndexName ON
[Owner.]TableName ( { ColumnName [ASC | DESC] }
[, ... ] )
パラメータ
CREATE INDEX文には、次のパラメータがあります。
UNIQUE | 索引の重複を禁止します。UNIQUEを指定すると、索引キーの列値の各組合せは、その表の1行にのみ指定できます。UNIQUEを省略すると、値を重複させることができます。一意索引を作成する場合、既存のすべての索引付きの列の値は一意である必要があります。 |
[Owner.] IndexName | 新しい索引に割り当てる名前。表の2つの索引に同じ名前を付けることはできません。所有者を指定する場合、表の所有者と同じ名前を指定する必要があります。 |
[Owner.] TableName | 索引を作成する表を指定します。 |
ColumnName | 索引キーとして使用する列の名前。主索引キーから補助索引キーの順に、最大16列を指定できます。 |
ASC | DESC | 索引の順序を昇順(デフォルト)または降順で指定します。現在、TimesTenではこのパラメータは無視されます。 |
説明
- CREATE INDEX文は、索引の定義をシステム・カタログに追加して、必要なデータ構造を初期化します。表の行はすべて索引に追加されます。TimesTenでは、表を作成し、索引を指定してからデータを追加した場合と、表を作成し、データを追加してから索引を指定した場合のパフォーマンスの違いはありません。
- UNIQUEを指定した場合、索引付けされた列の既存の行の値はすべて一意である必要があります。
- 新しい索引は、DROP INDEX文を使用して索引を削除するか、その索引に関連付けられた表を削除しないかぎり自動的にメンテナンスされます。
- 準備された文が新しく索引付けされた表を参照している場合、その文を次回に実行する際に自動的に再度準備されます。これにより、文は新しい索引を活用することができます。
- ソート処理では、NULLは最も大きな値としてソートされます。
- 他の接続が所有する空でないインスタンスが一時表にある場合、別の接続によって一時表に索引を作成することはできません。
- 言語比較を使用する場合は、言語索引を作成できます。言語索引ではソート・キー値が使用され、ソ―ト・キー値用の記憶域が必要です。1つの索引に指定できるNLS_SORTの値は、一意の値を1つのみです。言語索引および言語比較の詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の、グローバル・サポートに関する章の言語索引の使用の説明を参照してください。
例5.37
この一意索引によって、部品の番号はすべて一意になります。
CREATE UNIQUE INDEX Purchasing.PartNumIndex
ON Purchasing.Parts (PartNumber);
例5.38
employees1表に、german_indexという名前の言語索引を作成します。2つ以上の言語ソートが必要な場合は、2つ目の言語索引を作成します。
Command> create table employees1 (id character (21),
id2 character (21));
Command> create index german_index on employees1
(NLSSORT(id, 'NLS_SORT=GERMAN'));
Command> create index german_index2 on employees1
NLSSORT(id2, 'nls_sort=german_ci'));
Command> indexes employees1;
Indexes on table SAMPLEUSER.EMPLOYEES1:
GERMAN_INDEX: non-unique T-tree index on columns:
NLSSORT(ID,'NLS_SORT=GERMAN')
GERMAN_INDEX2: non-unique T-tree index on columns:
NLSSORT(ID2,'nls_sort=german_ci')
2 indexes found.
1 table found.
関連項目
DROP INDEX